
import { createApp } from 'vue';
import pinia from '@/stores/index';
import App from '@/App.vue';
import router from '/@/router';
import { directive } from '/@/directive/index';
import other from '@/utils/other';

// 全局引入ElementPlus
import zhCn from 'element-plus/es/locale/lang/zh-cn';
import ElementPlus from 'element-plus';
import '@/theme/index.scss';


// 引入VForm3
import VForm3 from '@/../lib/vform/designer.umd.js';
import '@/../lib/vform/designer.style.css';
// svg图标
import 'virtual:svg-icons-register';
// 引入全局工作流
import ProcessDesigner from './components/bpmn/package/designer/index';
import './components/bpmn/package/theme/index.scss';
// 引入全局组件配置
import { setupComponents } from '@/components/index.js';

// 注入全局的element-icon引入
import ElementIcons from '@/plugins/element-plus/element-plus-icons.js';
// vxe-table表格
import VxeTablePlugins from '@/plugins/vxe-table/index.jsx';
import 'vxe-table/lib/style.css';
// 函数式调用组件插件
import CallCompPlugins from '@/plugins/call-comp/CallCompPlugins.jsx'

// 引入样式
import '@/styles/index.scss';
// 注入关于JavaScript的扩展方法
import './extend/index';

// 首页配置
import { setupHomePage } from '@hp/index.js'

const app = createApp(App);

// 加载自定义指令
directive(app);
// 初始化首页配置
setupHomePage(app)
// 加载全局组件
setupComponents(app);

other.elSvg(app);

// 配置工作流
app.use(ProcessDesigner);
// 添加vxe-table
app.use(VxeTablePlugins);
// 添加ElementPlus
app.use(ElementPlus, { size: 'default', locale: zhCn });
app.use(ElementIcons);
// 添加VForm表单设计器
app.use(VForm3);
// 配置router
app.use(router);
// 配置pinia
app.use(pinia);
// 配置插件
app.use(CallCompPlugins);
// 挂载节点
app.mount('#app');
